package com.hnkywl.sts.action.organ;

import com.hnkywl.sts.entity.organ.Qyfr;
import com.hnkywl.sts.service.organ.QyfrService;
import net.ruixin.web.struts2.SimpleActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.Namespace;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 说明：
 * 包:        com.hnkywl.sts.action.sys
 * 类描述:    企业法人Action类
 * 修改备注: [说明本次修改内容]
 * 版本:        [v1.0]
 */
@Namespace("/organ/qyfr")
public class QyfrAction extends SimpleActionSupport {
    private QyfrService qyfrService;
    //查询条件：企业全称
    private String qyqc;
    //查询条件：法定代理人
    private String fddlr;
    //查询条件：纳税号
    private String nsh;
    //企业法人实体
    private Qyfr qyfr;

    private String qyfrJc;

    private Integer maxRows;
    //企业法人id
    private Long qyfrId;
    //远程ajax验证的值
    private String validateVal;
    //需要远程ajax验证的属性
    private String validateField;
    //分页组件 起始位置
    private int page;
    //分页组件 页面大小
    private int rows = 10;
    //操作符
    private String operation;

    //企业法人的查询分页显示
    @Action("qyfrList")
    public void qyfrList() {
        this.renderJson(this.qyfrService.findAllQyfr(qyqc, fddlr, nsh, page, rows));
    }

    //企业法人的名称显示
    @Action("qyfrmcList")
    public void qyfrmcList() {
        this.renderJson(this.qyfrService.findQyfrMc(qyqc, fddlr, nsh, 0, -1));
    }

    @Actions({@Action("qyfr_content"),@Action("qyfr_detail")})
    public String qyfrContent() {
        if (qyfrId != null) {
            qyfr = qyfrService.findQyfrDetail(qyfrId);
        }
        return SUCCESS;
    }

    /**
     * 方法名:     add_qyfr
     * 功能描述:      添加企业法人
     * 输入参数:
     * 异常:      <RuntimeException  Exception>
     * 创建人:     zsp
     * 创建日期:   13-3-20 下午16:50
     * 修改人:     zsp
     * 修改日期:   13-3-20 下午16:50
     */
    @Action("add_qyfr")
    public void addQyfr() {
        try {
            this.qyfrService.saveQyfr(qyfr);
            renderText("{\"statusCode\":\"200\", \"message\":\"添加企业法人成功！\", \"operationType\":\"add\"}");
        } catch (RuntimeException e) {
            e.printStackTrace();
            renderText("{\"statusCode\":\"300\", \"message\":\"" + e.getMessage() + "\"}");
        }
    }

    @Action("qyfr_tree")
    public void qyfrTree() {
        renderHtml(qyfrService.getQyfrTreeJson().toString());
    }

    //内部企业法人
    @Action("nbqyfrList")
    public void nbqyfrList() {
        this.renderJson(this.qyfrService.findNbQyfr());
    }
    //内部企业法人
    @Action("wbqyfrList")
    public void wbqyfrList() {
        this.renderJson(this.qyfrService.findWbQyfr());
    }

    @Action("qyfrLoader")
    public void qyfrLoader() {
        renderJson(qyfrService.findByJcOrQc(qyfrJc, qyqc, qyfrId, maxRows));
    }

    /**
     * 方法名:     update_qyfr
     * 功能描述:      修改企业法人
     * 输入参数:
     * 异常:      <RuntimeException  Exception>
     * 创建人:     zsp
     * 创建日期:   13-3-20 下午17:00
     * 修改人:     zsp
     * 修改日期:   13-3-20 下午17:00
     */
    @Action("update_qyfr")
    public void updateQyfr() {
        try {
            this.qyfrService.updateQyfr(qyfr);
            renderText("{\"statusCode\":\"200\", \"message\":\"修改企业法人成功！\", \"operationType\":\"update\"}");
        } catch (RuntimeException e) {
            e.printStackTrace();
            renderText("{\"statusCode\":\"300\", \"message\":\"" + e.getMessage() + "\"}");
        }
    }

    /**
     * 方法名:     delete_qyfr
     * 功能描述:      删除企业法人
     * 输入参数:
     * 异常:      <RuntimeException  Exception>
     * 创建人:     zsp
     * 创建日期:   13-3-20 下午17:10
     * 修改人:     zsp
     * 修改日期:   13-3-20 下午17:10
     */
    @Action("delete_qyfr")
    public void deleteQyfr() {
        try {
            this.qyfrService.deleteQyfr(qyfrId);
            renderText("{\"statusCode\":\"200\", \"message\":\"删除企业法人成功！\", \"operationType\":\"delete\"}");
        } catch (Exception e) {
            e.printStackTrace();
            renderText("{\"statusCode\":\"300\", \"message\":\"" + e.getMessage() + "\"}");
        }
    }

    /**
     * 远程ajax验证
     */
    @Action("ajax_validate")
    public void ajaxValidate() {
        if (!qyfrService.ajaxValidate(qyfrId, validateVal, validateField))
            renderJson("{\"valid\":true}");
        else
            renderJson("{\"valid\":false}");
    }

    /**
     * 是否选中正确的企业法人提供的远程验证
     */
    @Action("ajax_contrary_validate")
    public void contraryValidate() {
        if (qyfrService.ajaxValidate(qyfrId, validateVal, validateField))
            renderJson("{\"valid\":true}");
        else
            renderJson("{\"valid\":false}");
    }

    @Autowired
    public void setQyfrService(QyfrService qyfrService) {
        this.qyfrService = qyfrService;
    }

    //============getter and setter=============

    public String getQyqc() {
        return qyqc;
    }

    public void setQyqc(String qyqc) {
        this.qyqc = qyqc;
    }

    public String getFddlr() {
        return fddlr;
    }

    public String getQyfrJc() {
        return qyfrJc;
    }

    public void setQyfrJc(String qyfrJc) {
        this.qyfrJc = qyfrJc;
    }

    public Integer getMaxRows() {
        return maxRows;
    }

    public void setMaxRows(Integer maxRows) {
        this.maxRows = maxRows;
    }

    public void setFddlr(String fddlr) {
        this.fddlr = fddlr;
    }

    public String getNsh() {
        return nsh;
    }

    public void setNsh(String nsh) {
        this.nsh = nsh;
    }

    public Qyfr getQyfr() {
        return qyfr;
    }

    public void setQyfr(Qyfr qyfr) {
        this.qyfr = qyfr;
    }

    public Long getQyfrId() {
        return qyfrId;
    }

    public void setQyfrId(Long qyfrId) {
        this.qyfrId = qyfrId;
    }

    public String getValidateVal() {
        return validateVal;
    }

    public void setValidateVal(String validateVal) {
        this.validateVal = validateVal;
    }

    public String getValidateField() {
        return validateField;
    }

    public void setValidateField(String validateField) {
        this.validateField = validateField;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        this.rows = rows;
    }

    public String getOperation() {
        return operation;
    }

    public void setOperation(String operation) {
        this.operation = operation;
    }

}
